home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 1 / Atari Mega Archive - Volume 1.iso / program / gemxx19.zoo / gem++19 / man / gemfw.man < prev    next >
Text File  |  1993-11-19  |  5KB  |  132 lines

  1.                      GEM++ - C++ LIBRARIES FOR GEM/AES/VDI
  2.  
  3.  
  4.  
  5. NAME
  6.      GEMformwindow - a GEMwindow which has a GEMform as its contents.
  7.  
  8. DESCRIPTION
  9.      Windows under GEM can be very time consuming to handle - with
  10.      all the various events that must be handled.  Also, any work done
  11.      developing window-based graphics is then difficult to reuse in
  12.      other similar applications.
  13.  
  14.      Forms under GEM however, are very easy to use, hence the large
  15.      number of applications that use a dialog box (form) as the
  16.      entire user interface... which disables menus and desk accessories,
  17.      and has even worse consequences under MultiTOS (right?).
  18.  
  19.      HOWEVER, with the GEMformwindow class, you get the simplicity
  20.      of a dialog box, in a window.  All redraws of the window are
  21.      converted to redraws of the components of the form, and all
  22.      clicks on the window are converted to touches on the objects
  23.      in the form.
  24.  
  25.      The greatest advantage that the GEMformwindow class is that you
  26.      can use all the power of GEMobjects to provide the graphics,
  27.      and any new object types you create can be used in other window
  28.      applications, simply by reusing the new GEMobjects you derive.
  29.  
  30. CONSTRUCTORS
  31.      GEMformwindow(GEMactivity& act, const GEMrsc& rsc, int RSCindex)
  32.        Create a window that contains the form specified by the given
  33.        RSC index in the given GEMrsc.  The window will have a closer,
  34.        name, and mover.
  35.  
  36.      GEMformwindow(GEMactivity& act, const GEMrsc& rsc, int RSCindex, int Parts)
  37.        Create a window that contains the form specified by the given
  38.        RSC index in the given GEMrsc.  The window will have the given
  39.        parts (see gemfast.h from the C library).  For example, the
  40.        parts could include the window sliders and resizer so that the
  41.        form could be potentially large with just a small window showing.
  42.  
  43.      GEMformwindow(GEMactivity& act, const GEMformwindow&)
  44.        Create a copy of the given GEMformwindow.  Data sharing will
  45.        be as described for a GEMform.
  46.  
  47. METHODS
  48.      void AlignObject(int RSCindex, int xmult=8, int ymult=1);
  49.        Some objects, especially text, redraw faster when then are byte-
  50.        or word-aligned on the screen.  This method sets the alignment
  51.        for the window such that the given object is positioned at a
  52.        multiple of the given coordinates.
  53.  
  54.      virtual void RedrawObject(int RSCindex)
  55.        Redraw an object in the form.  Only the visible part of the
  56.        object is redrawn.  Note that the method GEMobject::Redraw is
  57.        similar.
  58.  
  59.      virtual void RedrawObject(int RSCindex,int Cx,int Cy,int Cw,int Ch)
  60.        As above, except the redrawing is further clipped to the given area.
  61.  
  62.      virtual GEMfeedback Click(const GEMevent&)
  63.        An event handler.  This method overrides GEMwindow::Click().
  64.        It handles click events to windows, behaving just like a normal
  65.        dialog box, but in a window, and with one exception:
  66.  
  67.           Edits of text fields are modal in that once an editable
  68.           objected is clicked on, the text cursor appears, and editing
  69.           may occur until RETURN is pressed, or the user clicks
  70.           elsewhere.  Menus, etc. are not active during editing.
  71.  
  72.        This is because otherwise multiple edit cursors would be active
  73.        in multiple windows - whereas regular GEM forms only exist one
  74.        at a time.
  75.  
  76.        Note that this method calls the virtual GEMform::DoItem method.
  77.  
  78.      virtual void Top(const GEMevent&)
  79.        An event handler.  This method overrides GEMwindow::Top().  It
  80.        handles click events that are attempting to top the window.
  81.        However, if a selectable object is at the clicked position, it
  82.        processes that click without topping the window.  Clicks on
  83.        unselectable objects will simply cause the window to be topped.
  84.  
  85.      virtual bool IsOpen() const;
  86.        TRUE if the window is open.
  87.  
  88.      bool RubberWidth();
  89.      bool RubberHeight();
  90.      void RubberWidth(bool yes);
  91.      void RubberHeight(bool yes);
  92.      void Rubber(bool yes);
  93.        Set/get the "rubberness" of the form in the window.  If a dimension
  94.        is rubber, then the form is resized (via GEMobject::Resize) when the
  95.        window changes size.  Initially, a dimension is set as rubber if there
  96.        is a RESIZE part but no slider (HSLIDE/WSLIDE) for the dimension.
  97.        See also: GEMfitobject.
  98.  
  99. EXAMPLES
  100.      {
  101.          GEMapplication appl;
  102.          GEMrsc rsc("foo.rsc");
  103.          GEMactivity act;
  104.          GEMformwindow formwin(rsc,RSC_INDEX_OF_FORMWIN);
  105.          GEMalert noformwin(rsc,RSC_INDEX_OF_NOFORMWIN_ALERTBOX);
  106.          if (formwin.Created())
  107.              formwin.InActivity(act);
  108.          else 
  109.              noformwin.Alert();
  110.      }
  111.  
  112. SEE ALSO
  113.      GEMform, GEMwindow, GEMobject, GEMactivity.
  114.  
  115. BUGS
  116.      Bugs in GEM++ should be reported to warwick@cs.uq.oz.au
  117.  
  118. AUTHOR
  119.      Warwick Allison, 1993.
  120.      warwick@cs.uq.oz.au
  121.  
  122. COPYING
  123.      This functionality is part of the GEM++ library,
  124.      and is Copyright 1993 by Warwick W. Allison.
  125.  
  126.      GEM++ is free and protected under the GNU Library General Public
  127.      License.
  128.  
  129.      You are free to copy and modify these sources, provided you
  130.      acknowledge the origin by retaining this notice, and adhere to
  131.      the conditions described in the GNU LGPL.
  132.